package com.hqy.product.service;

import com.alibaba.fastjson.JSONObject;
import com.hqy.product.dto.BaseCategoryView;
import com.hqy.product.dto.SkuImage;
import com.hqy.product.dto.SpuSaleAttr;
import com.hqy.product.dto.SkuInfo;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public interface ItemService {

    /**
     * 根据sku的id查询sku的详细信息
     * @param skuId
     * @return
     */
    public SkuInfo getSkuInfo(Long skuId);

    /**
     * 根据三级分类的id获取一级二级三级分类的详细信息
     * @param c3Id
     * @return
     */
    public BaseCategoryView getCategory(Long c3Id);

    /**
     * 根据sku的id查询图片的列表
     * @param skuId
     * @return
     */
    public List<SkuImage> getSkuImage(Long skuId);

    /**
     * 根据sku的id查询价格
     * @param skuId
     * @return
     */
    public BigDecimal getPrice(Long skuId);

    /**
     * 查询商品详情页使用的展示销售属性的信息,并且标识出当前的sku的销售属性值是哪个
     * @param skuId
     * @param spuId
     * @return
     */
    public List<SpuSaleAttr> getSaleAttrBySkuIdAndSpuId(Long skuId, Long spuId);

    /**
     * 获取指定spu下的所有sku的id和销售属性值的键值对
     * @param spuId
     * @return
     */
    public Map getSkuKeyAndValues(Long spuId);

    /**
     * 获取首页的分类信息
     * @return
     */
    public List<JSONObject> getIndexCategory();

}
